package com.ccmusic.service;

import java.util.List;

import com.ccmusic.entity.Matching;
import com.ccmusic.entity.Music;
import com.ccmusic.entity.MusicType;
import com.ccmusic.util.DatatablesBean;

public interface MatchingService {

	/**
	 * 新增用户-歌曲匹配
	 * 
	 * @param matching
	 *            用户和歌曲匹配的对象（对应关系：用户id-音乐id（表中的id））
	 * @param return
	 *            添加成功时返回true；添加失败返回false
	 */
	public boolean addMatching(Matching matching);

	/**
	 * 通过用户id获取对应的所有匹配歌曲id
	 * 
	 * @param uid
	 *            用户id
	 * @return 用户收藏（与用户id匹配）的所有歌曲id集合
	 */
	public List<Matching> getMatchingsByUid(String uid);
	/**
	 * 用户登录后根据用户id获取用户收藏的歌单
	 * @param uid
	 * @return
	 * List<Music>
	 */
	public DatatablesBean<MusicType> getMusicCollectionByUid(String uid);

	/**
	 * 删除用户所匹配的特定歌曲
	 * 
	 * @param matching
	 *            用户与该歌曲匹配关系对象
	 * @return 删除成功时返回true；删除失败时返回false
	 */
	public boolean removeMatching(Matching matching);
	
	/**
	 * 根据音乐id删除用户所匹配的特定歌曲
	 * 
	 * @param mid
	 *            音乐id
	 * @return 删除成功时返回true；删除失败时返回false
	 */
	public boolean delMatchingByMid(String mid);
	
	/**
	 * 查询每首音乐与用户的收藏关系
	 * @param uid
	 * @param mid
	 * @return
	 */
	public boolean getMatching(int uid,int mid);
}
